The concept of data unit based communication in a hierarchy of protocol layers is well known in the art. In such systems data to be sent over a connection is divided into a plurality of data units, which are passed through a hierarchy of protocol layers, where each layer is responsible for a predetermined aspect of the communication. For example, the OSI model describes such a hierarchy of layers. It may be noted that the subdivisions into which an amount of data is divided sometimes receive different names, such as protocol data unit (PDU), service data unit (SDU), packet, frame, cell, segment etc., depending on the specific protocol or technology involved, and for the purpose of the present specification, the term “data unit” shall be used generically to relate to any such subdivision of data.
A schematic example of the processing of data at a given layer in a protocol hierarchy will be explained on the basis of FIG. 2. In the example of FIG. 2, processing at a layer 2 (L2) or link layer is shown. The link layer is a layer responsible for transmission over one link from among a possible plurality of links in a communication between two endpoints. In the example of FIG. 2, on the sending side so-called layer 2 (L2) service data units (SDU) are processed into L2 protocol data units (PDU) and sent to a receiver. It may be noted that the term service data unit (SDU) for data units received by a given layer from above (on the sending side) and released by said given layer to above (on the receiving side), and protocol data unit (PDU) for data units transmitted at the given layer shall be used in the present application in order to better distinguish between the respective data units. An L2 SDU can e.g. be an L3 PDU. However, the L2 layer shown in FIG. 2 can also be a sublayer of a larger layer, such that the L2 SDU would then be a data unit of a higher sublayer. An SDU can alternatively be referred to as a higher layer data unit, where the term “layer” is intended to generically refer to entire layers, sublayers, groups of layers or sublayers, or any combination thereof.
FIG. 2 shows a so-called sending peer 20 and a receiving peer 10. A peer can for example be a radio network controller, a base station or a mobile unit in a wireless transmission system. The sending peer 20 receives L2 service data units from the higher layer 3 (e.g. the network layer, which establishes the route between sending and receiving stations, i.e. is responsible for establishing a network of links), and processes these L2 service data units in an entity 22. The specific processing will depend on the specific protocol implemented at L2. For example, it is known to simply encapsulate the higher layer data units, which means to take an L2 SDU and place it into a payload section of an L2 PDU, which besides this payload section also comprises a control information section, such as a header. The processing in entity 22 can also consist in a segmentation of the L2 SDU into a plurality of L2 PDUs, i.e. the data that makes up a L2 SDU is placed into the payload sections of a plurality of L2 PDUs or a concatenation. The concepts of encapsulation, concatenation and segmentation are well known in the art and therefore do not need to be described in more detail. The one or more L2 PDUs are then handled by a sending entity 21 and passed on to lower layers, which are schematically represented by arrow 32. At the receiving peer 10, the L2 PDUs are received by a receiving entity 11 in the receiving peer 10. The receiving peer 10 and the sending peer 20 are connected by a virtual link 31 set up in accordance with the communication protocol at L2. In general, the receiving peer 10 will receive and process the L2 PDUs, in order to finally provide L2 SDUs, which are released upwards to the higher layer L3.
In order to safeguard a reliable data transmission, the L2 PDU receiver 11 may perform an error detection procedure for determining whether a received L2 PDU is corrupted or not. The term “corrupted” will be used to describe any change that occurred in a data unit along its transmission through the lower layers 32, which leads to the copy of a given L2 PDU received at the receiving peer 10 not being identical to the copy sent by the sending peer 20. Such corruption can e.g. consist in the changing of one or more bits in such a data unit due to errors at the physical layer. Then, in response to such error detection, the further handling of such data units can be performed, for example, it is possible that all corrupted L2 PDUs are simply discarded without any other action being taken, or they are discarded and a corresponding indication of corruption is sent back to the sending peer 20, e.g. in the form of an automatic retransmission request (ARQ).
FIG. 2 also shows an upward release handling procedure 12, which is arranged to process the data from received L2 PDUs in order to provide L2 SDUS. For example, if the L2 processing in entity 22 of the sending peer 20 consists in simple encapsulation, then the upward release handling of entity 12 in the receiving peer can consist in simply removing this encapsulation, i.e. isolating the payload section of the L2 PDU in order to provide the L2 SDU contained therein and passing it upward. If the L2 processing in entity 22 is more complicated, e.g. consists in segmentation, then the upward release handling of entity 12 will perform the corresponding inverse operation, e.g. assemble L2 SDUs from the contents of the payload sections of the received L2 PDUs.
It may be noted that although the above described basic procedure was described in connection with processes at the link layer, such a procedure of data handling can also occur at other layers, such as the transport layer, the network layer and the physical layer. It should also be noted, as already mentioned, that the term “layer” throughout this text can relate to implementations of a single layer, groups of layers or sublayers, or any combination of layers and sublayers.
In general, as already mentioned, if the receiving peer determines that the received data unit is corrupted, this data unit will be discarded. The fact that a data unit is corrupted is generally established by examining redundancy information added to a data unit prior to being sent. For example, it is known to add a check sum or CRC (Cyclic Redundancy Checking) code of the bits in a data unit, and the check sum is sent along with the data unit in a control information part, e.g. the header. Then a receiving peer can itself calculate the check sum and compare the calculated check sum with the check sum sent along with the data unit, where a mismatch is an indication of corruption. Other methods to indicate corruption are also known, such as the use of reliability information from the receiver or channel decoder in the physical layer (or generally a lower layer).
In order to avoid that corruption occurs in data units, it is known to apply so-called forward error correction (FEC). Forward error correction implies that the sending side undertakes measures that increase the probability that no corruption occurs during transmission and/or that corruption can be corrected by the receiving peer. FEC is generally known in the art and does not need to be explained in further detail here.
In addition to or in place of FEC, the above-mentioned mechanism of ARQ can be used to guarantee the correct transmission of a data unit. Namely, in an ARQ mechanism a receiving peer will continue to send appropriate automatic retransmission request messages to a sending peer until it has received an uncorrupted data unit. This is also well known in the art and does not need to be explained in more detail here.
As a consequence, in communication networks different modes of link configuration can be provided by a layer to an application, e.g. a so-called acknowledged mode (AM), an unacknowledged mode (UM) and a transparent mode (TM) in link layer (L2) traffic.
For error control, the TM and UM rely solely on FEC, while AM applies a combination of FEC and backward error control by means of error detection and ARQ. The difference between UM and TM is that TM does not add any protocol header. This is only possible in the context of certain protocols, in which the precise format of user data is known, and a typical example is circuit-switched speech transmission in the global system for mobile communication (GSM). Both UM and AM add a protocol header.
Generally, a link layer is configured according to the class of data which needs to be transmitted. For real-time and streaming traffic, the content has only a temporary relevance, and a speech/video data unit arriving too late at the final receiver is simply discarded. Other types of traffic require an exact transmission of data, such as in the case of a file transfer, such that ARQ is used in order to guarantee correct transmission. Such types of traffic are sometimes also referred to as interactive and best-effort traffic.
Generally, with respect to the different types of traffic and the different modes of transmission, the following link configurations are customary. Real-time traffic uses UM or TM, streaming traffic can apply AM, UM or TM, whereas interactive and best-effort traffic use AM. A general problem of UM and TM is that the FEC has to be configured to achieve sufficient (mean) link quality even for bad link conditions. Therefore, if the transmission conditions are fair or good, a link is generally “overprotected”, which means that resources are wasted.
As a consequence, a new method has been proposed which e.g. in the context of the WCDMA radio link control (RLC) protocol is referred to as “SDU discard”, see e.g. 3 GPP TS 25.322, V4.3.0 (2001, 12). This method applies an AM mode that is reliable only within a limited time interval within which ARQ is applied. In other words, automatic repeat requests for a given data unit are not sent indefinitely when no uncorrupted data unit arrives. Much rather, if no uncorrupted data unit arrives within a predetermined time or after a predetermined number of retransmission requests, the sending of retransmission requests for that given data unit is stopped.
By using such a mechanism, a better balance between FEC and ARQ can be achieved, because the FEC can be tailored to fair or good channel conditions, i.e. to use less resources, and during bad channel conditions additional quality is provided by the semi-reliable or limited ARQ.
Real-time or streaming applications are generally transported without ARQ in the transport protocol, e.g. with the well known user datagram protocol (UDP). As already-mentioned previously, in the transport of real-time or streaming traffic, the link layer will pass uncorrupted data units upwards and will discard corrupted data units, where it is relied upon that the higher layer, e.g. at the application layer, can deal with the missing data. In order to support the error concealment capabilities that are sometimes provided at higher layers, for example the application layer, it has been proposed to introduce a protocol called UDP-light which allows error tolerance with respect to passing corrupted data units upwards if the corruption occurs in a predetermined section of the data units. In other words UDP-light can be implemented to not categorically discard all corrupted data units received, but can allow data units having corruption in the predetermined section to be passed upwards, where it is assumed that the higher layers may have the capability of dealing with the flawed data. In UDP-light the error detection function is controlled such that the sensitivity of the error detecting CRC (cyclically redundancy checking) code is appropriately chosen, such that the link layer does not notice certain bit errors, and the corresponding data is consequently passed upwards to higher layers.